As the computer industry advances, video hardware is constantly updated and improved, including and necessitating the advancement of hardware video controllers. Consequently, software drivers must also adjust to support the evolution of such hardware controllers. The present invention addresses the need for supporting such controllers, and preferably accomplishes this problem using a single software driver.
Under known prior art systems, an entire software driver is developed for each new corresponding hardware controller. Often, the software developer obtains a standardized software driver and modifies it to support the new hardware. Such a standardized software driver is typically available from either the hardware developer, or from the manufacturer of the operating system or environment which will communicate with the improved hardware. As an example with respect to many contemporary personal computers, MICROSOFT of Redmond, Wash., currently sells a device driver kit to communicate with its WINDOWS environment. This driver may be modified to allow communication between WINDOWS and a specific hardware controller.
Most controllers operate at selectable color depths and resolutions. A color depth defines how many unique colors may be output from a video controller at any one time. For example, to support 256 colors, a color depth of 8 BPP (Bits Per Pixel) is necessary. To support 65K colors, a color depth of 16 BPP is necessary. Resolution defines how many pixels are output to the display device. Standard VGA has a resolution of 640.times.480 pixels, while enhanced VGA modes include 800.times.600, 1024.times.768 and 1280.times.1280. In the prior art, a separate driver is necessary for each combination of color depth and resolution.
The above approach of providing multiple drivers for different video controllers (and controller modes) suffers several drawbacks. For example, development of a new driver for each new device vastly increases the necessary resources and time in bringing the combination of new controller/new driver to market. Further, troubleshooting and debugging are complicated because the driver-specific code for primitive commands often must be fully completed before the driver can be tested. Still further, each time a new controller is developed, the entire process must be repeated.
It is therefore an object of the present invention to provide a video driver for accommodating multiple video controllers.
It is a further object of the present invention to provide such a video driver for use with the WINDOWS environment.
It is a further object of the present invention to provide such a video driver to minimize developmental time and resources needed as new video controllers are developed.
It is a further object of the present invention to provide such a video driver that may evaluate the type of video controller with which it is communicating and identify which primitive commands may be accelerated by the controller.
It is a further object of the present invention to provide such a video driver that may selectively choose which primitive commands are accelerated by the controller.
Still other objects and advantages of the present invention will become apparent to those of ordinary skill in the art having references to the following specification together with its drawings.